From 8b8c4769ed9406d2bd8753bc0d829c176c8dedde Mon Sep 17 00:00:00 2001 From: "kaf24@localhost.localdomain" Date: Sun, 21 Jan 2007 17:10:58 +0000 Subject: [PATCH] Fix byte-to-long bitmap conversions. Signed-off-by: Keir Fraser --- tools/libxc/xc_private.c | 3 +-- xen/common/bitmap.c | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/tools/libxc/xc_private.c b/tools/libxc/xc_private.c index db3715989a..df494d1143 100644 --- a/tools/libxc/xc_private.c +++ b/tools/libxc/xc_private.c @@ -525,8 +525,7 @@ void bitmap_byte_to_64(uint64_t *lp, const uint8_t *bp, int nbits) for (i = 0, b = 0; nbits > 0; i++, b += sizeof(l)) { l = 0; for (j = 0; (j < sizeof(l)) && (nbits > 0); j++) { - l <<= 8; - l |= bp[b+j]; + l |= (uint64_t)bp[b+j] << (j*8); nbits -= 8; } lp[i] = l; diff --git a/xen/common/bitmap.c b/xen/common/bitmap.c index 76f55d29e8..363572bedb 100644 --- a/xen/common/bitmap.c +++ b/xen/common/bitmap.c @@ -494,8 +494,7 @@ void bitmap_byte_to_long(unsigned long *lp, const uint8_t *bp, int nbits) for (i = 0, b = 0; nbits > 0; i++, b += sizeof(l)) { l = 0; for (j = 0; (j < sizeof(l)) && (nbits > 0); j++) { - l <<= 8; - l |= bp[b+j]; + l |= (unsigned long)bp[b+j] << (j*8); nbits -= 8; } lp[i] = l; -- 2.30.2